// FFmpeg 是一个开源的跨平台多媒体处理工具，可以用于处理音频、视频和多媒体流。
// 它提供了一组强大的命令行工具和库，可以进行视频转码、视频剪辑、音频提取、音视频合并、流媒体传输等操作
/*
FFmpeg 的主要功能和特性：
    格式转换：FFmpeg 可以将一个媒体文件从一种格式转换为另一种格式，支持几乎所有常见的音频和视频格式，包括 MP4、AVI、MKV、MOV、FLV、MP3、AAC 等。
    视频处理：FFmpeg 可以进行视频编码、解码、裁剪、旋转、缩放、调整帧率、添加水印等操作。你可以使用它来调整视频的分辨率、剪辑和拼接视频片段，以及对视频进行各种效果处理。
    音频处理：FFmpeg 可以进行音频编码、解码、剪辑、混音、音量调节等操作。你可以用它来提取音频轨道、剪辑和拼接音频片段，以及对音频进行降噪、均衡器等处理。
    流媒体传输：FFmpeg 支持将音视频流实时传输到网络上，可以用于实时流媒体服务、直播和视频会议等应用场景。
    视频处理效率高：FFmpeg 是一个高效的工具，针对处理大型视频文件和高分辨率视频进行了优化，可以在保持良好质量的同时提供较快的处理速度。
    跨平台支持：FFmpeg 可以在多个操作系统上运行，包括 Windows、MacOS、Linux 等，同时支持多种硬件加速技术，如 NVIDIA CUDA 和 Intel Quick Sync Video。
*/
// 下载 ---> 安装 ---> 配置环境变量 ---> ffmpeg --version 查看是否成功 ---> 使用
// 子进程 配合 ffmpeg
// const {execSync} = require('child_process')
// 将MP4 转成 gif
// execSync(`ffmpeg -i test.mp4 test.gif`,{stdio:'inherit'})    // 配置{stdio:'inherit'} 是为了能看到执行过程
// 添加水印 drawtext
// execSync(`ffmpeg -i test.mp4 -vf drawtext=text="XMZS":fontsize=30:fontcolor=white:x=10:y=10 test2.mp4`,{stdio:'inherit'})
// 裁剪视频 -ss 10 -to 20    从10s到20s
// execSync(`ffmpeg -ss 10 -to 20 -i test.mp4  test3.mp4`,{stdio:'inherit'})
// 提取视频的音频
// execSync(`ffmpeg -i test.mp4 test.mp3`,{stdio:'inherit'})
// 去水印
// execSync(`ffmpeg -i  test2.mp4 -vf delogo=w=120:h=30:x=10:y=10 test3.mp4`,{stdio:'inherit'})




/*
pngquant 是压缩 png 图片的一个工具， 去 pngquant.com官网下载，windows版或者macos版，
    核心是 使用了 Median Cut 量化算法
    本地安装后配置一下环境变量，使用 pngquant --version 查看是否安装成功
    使用 exec运行
    exec('pngquant big.png --output small.png')     // output 输出
    // quality 质量参数 值是 0~100， 数字越大，质量越高，体积越大
    exec('pngquant big.png --quality=50 --output small.png') 
    // speed 速度参数 值是 0~10 数字越小越慢，但质量高
    exec('pngquant big.png --speed=5 --output small.png') 
*/